Proximity sensor devices (also commonly called touch pads or touch sensor devices) are widely used in a variety of electronic systems. A proximity sensor device typically includes a sensing region, often demarked by a surface, which uses capacitive, resistive, inductive, optical, acoustic and/or other technology to determine the presence, location and/or motion of one or more fingers, styli, and/or other objects. The proximity sensor device, together with finger(s) and/or other object(s), can be used to provide an input to the electronic system. For example, proximity sensor devices are used as input devices for larger computing systems, such as those found integral within notebook computers or peripheral to desktop computers. Proximity sensor devices are also used in smaller systems, including: handheld systems such as personal digital assistants (PDAs), remote controls, communication systems such as wireless telephones and text messaging systems. Increasingly, proximity sensor devices are used in media systems, such as CD, DVD, MP3, video or other media recorders or players.
Many electronic devices include a user interface, or UI, and an input device for interacting with the UI (e.g., interface navigation). A typical UI includes a screen for displaying graphical and/or textual elements. The increasing use of this type of UI has led to a rising demand for proximity sensor devices as pointing devices. In these applications the proximity sensor device can function as a value adjustment device, cursor control device, selection device, scrolling device, graphics/character/handwriting input device, menu navigation device, gaming input device, button input device, keyboard and/or other input device.
One issue with past touch sensor devices has been enabling dragging, scrolling, and similar functions with gestures. Specifically, many users cite difficulty in using touch sensor devices for “dragging”. In general, “dragging” comprises continued selection, optionally with motion. For example, dragging occurs when an icon is selected and moved using a mouse. Another example is when a portion of text is selected and highlighted. A third example is when a scrollbar thumb on a scrollbar is selected and moved to scroll through text. In all three examples, dragging is accomplished with continued selection (e.g., pressing a button) combined with motion (e.g., cursor motion). Continued selection with zero motion, often referred to as a “press gesture,” may be viewed either as a special case of the drag gesture or as a distinct gesture
With a mouse, dragging is simple: One moves the cursor to a start point, presses and holds a mouse button, then moves the cursor to an end point—optionally “rowing” (lifting the mouse when it reaches the edge of the mouse pad and setting it back down away from the edge) to drag for long distances—then releases the mouse button to stop dragging. With a traditional touch sensor device, dragging is much more awkward, particularly for dragging long distances. Dragging for long distances is typically more awkward on touch sensor devices because it can require “rowing”, e.g., lifting the finger when the edge of the touch sensor is reached to reposition the finger on the touch sensor. Specifically, while some previous techniques have facilitated the use of two fingers to initiate dragging, dragging ends when both the fingers are removed and they have failed to provide any mechanism for maintaining dragging selection without cursor movement. Thus, in these and other systems maintaining dragging with a touch sensor device requires simultaneously pressing another input device (e.g., button) while moving the cursor with the touch sensor device. Pressing a button while moving the cursor using the touch sensor device can be difficult for some users.
The motion in a dragging action often consists of a straight line from a start point to an end point, but some uses of dragging involve other kinds of motions. An effective dragging gesture for touch sensor devices must accommodate all these usage patterns. Some prior art solutions, such as edge motion, help with simple linear drags but are less helpful with the kinds of drag motions used, for example, when operating a scroll bar.
Some current techniques facilitate touch sensor device dragging without requiring input to other buttons. For example, the current market standard is a gesture called “tap-and-a-half” dragging. To utilize tap-and-a-half dragging, once the user has ensured that the cursor or other indicator is at a desired start point, the user lifts any finger that is on the sensitive surface of the touch sensor device taps once, and quickly places the finger back down on the sensitive surface. This gesture activates dragging. The user then moves the cursor by moving the finger to an end point and then lifts the finger to stop dragging. Typically the same finger is used for the entire dragging motion, but different fingers or objects may be used for different portions of the gesture.
While the use of the basic tap-and-a-half gesture to initiate dragging is an improvement, its efficiency in facilitating dragging over long distances is limited. Again, when dragging for long distances the user can be required to “row”, e.g., lift the finger when the edge of the touch sensor is reached to reposition the finger on the touch sensor. When the user lifts the finger to “row” the cursor, the selection will be lost and the drag will end, and typically must be restarted with another tap-and-a-half gesture, greatly complicating the gestures required to perform a long distance drag. Many solutions have been used and proposed to enhance the tap-and-a-half gesture for long distance drags. For example, U.S. Pat. No. 5,880,411 discloses locking drags, extended drags, and edge motion. However, all of these solutions, and indeed the tap-and-a-half gesture itself, have the disadvantage that performing them involves distinctly different and complicated hand and finger actions than are used with a mouse, hence making dragging difficult for users familiar with mice.
Thus, while many different techniques have been used to facilitate dragging, there remains a continuing need for improvements in device usability. Particularly, there is a continuing need for improved techniques for facilitating dragging with proximity sensor devices.